#include <stdio.h>

typedef int(*myfunc)(int ,int);

int add(int a,int b)
{
	return a+b;
}
int sub(int a,int b)
{
	return a-b;
}

myfunc mycalulator(char flag)
{
	switch(flag)
	{
	case '+':
		return add;
		break;
	case '-':
		return sub;
		break;
	default:
		break;
	}
}

int jisuan(int a,int b,char flag)
{
	return ((*mycalulator(flag))(a,b));
}

int main(int argc, const char *argv[])
{
	int a=100;
	int b=50;
	char flag = '+';
	printf("%d %c %d = %d \n",a,flag,b,jisuan(a,b,flag));

	int c=350;
	int d=100;
	char flag1 = '-';
	printf("%d %c %d = %d \n",c,flag1,d,jisuan(c,d,flag1));

	return 0;
}
